#include "handler.h"

namespace YQ {


template<typename T>
shared_ptr<T>
makeDefaultHandler()
{
	return make_shared<T> (getDefaultModelSetting<T>());
}

template<>
shared_ptr<QualityOfBrightness>
makeDefaultHandler()
{
	return make_shared<QualityOfBrightness>();
}


template<>
shared_ptr<QualityOfClarity>
makeDefaultHandler()
{
	return make_shared<QualityOfClarity>();
}

template<>
shared_ptr<QualityOfResolution>
makeDefaultHandler()
{
	return make_shared<QualityOfResolution>();
}

template<>
shared_ptr<QualityOfIntegrity>
makeDefaultHandler()
{
	return make_shared<QualityOfIntegrity>();
}

template shared_ptr<FaceDetector> makeDefaultHandler<FaceDetector>();
template shared_ptr<FaceLandmarker> makeDefaultHandler<FaceLandmarker>();
template shared_ptr<FaceRecognizer> makeDefaultHandler<FaceRecognizer>();
template shared_ptr<QualityOfBrightness> makeDefaultHandler<QualityOfBrightness>();
template shared_ptr<QualityOfClarity> makeDefaultHandler<QualityOfClarity>();
template shared_ptr<QualityOfPoseEx> makeDefaultHandler<QualityOfPoseEx>();
template shared_ptr<QualityOfResolution> makeDefaultHandler<QualityOfResolution>();
template shared_ptr<QualityOfIntegrity> makeDefaultHandler<QualityOfIntegrity>();

}